#ifndef PWAVE_MPI_TOPOCART2D_H
#define PWAVE_MPI_TOPOCART2D_H

#include "MPI_Topo.h"
#include "ProblemCart2DBlk.h"


class MPI_TopoCart2D : public MPI_Topo {
public:
    int NUM_BLK_Y, NUM_BLK_Z;           // num of blocks in y and z direction respectively

    int BLK_LOC_Y, BLK_LOC_Z;           // position of the current block (process) in the cartesian coordination system

    int NBR_YN, NBR_YP, NBR_ZN, NBR_ZP; // the ids of processes that neighbors in y-, y+, z-, z+ directions

    virtual void init();
    virtual void get_self_loc();
    virtual void get_neighbors();
    virtual void free();
};

#endif //PWAVE_MPI_TOPOCART2D_H
